{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 作业5\n",
    "（将给定素材的文件夹中的所有文件提取出来，存放到自己文件夹中的'成绩文件汇总2'文件夹中。）\n",
    "### 通义千问：\n",
    "在C:\\python作业中新建一个文件夹“成绩文件汇总2”将C:\\python作业\\铁通2401下所有文件夹中的文本文件提取并存放到成绩文件汇总2中\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "已创建文件夹 'C:\\python作业\\成绩文件汇总2'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\240052_窦鸣宇\\240052 窦鸣宇.txt' 到 'C:\\python作业\\成绩文件汇总2\\240052 窦鸣宇.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\240179_陈金妙\\240179陈金妙.txt' 到 'C:\\python作业\\成绩文件汇总2\\240179陈金妙.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\240430_党梦轩\\240430党梦轩.txt' 到 'C:\\python作业\\成绩文件汇总2\\240430党梦轩.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\240432_王舒心\\240432王舒心.txt' 到 'C:\\python作业\\成绩文件汇总2\\240432王舒心.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\240433_徐博恩\\240433徐博恩.txt' 到 'C:\\python作业\\成绩文件汇总2\\240433徐博恩.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\240778_寇云霄\\240778寇云霄.txt' 到 'C:\\python作业\\成绩文件汇总2\\240778寇云霄.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\241021_张佳堙\\241021张佳堙.txt' 到 'C:\\python作业\\成绩文件汇总2\\241021张佳堙.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\241041_肖百禾\\241041肖百禾.txt' 到 'C:\\python作业\\成绩文件汇总2\\241041肖百禾.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\241060_王佳怡\\241060王佳怡.txt' 到 'C:\\python作业\\成绩文件汇总2\\241060王佳怡.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\241181_孟敬媛\\241181孟敬媛.txt' 到 'C:\\python作业\\成绩文件汇总2\\241181孟敬媛.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\241341_杨憧憬\\新建文本文档.txt' 到 'C:\\python作业\\成绩文件汇总2\\新建文本文档.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\241385_张春浩\\241385张春浩.txt' 到 'C:\\python作业\\成绩文件汇总2\\241385张春浩.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\241563_张美辰\\241563张美辰.txt' 到 'C:\\python作业\\成绩文件汇总2\\241563张美辰.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\241632_王杨宇飞\\241632王杨宇飞.txt' 到 'C:\\python作业\\成绩文件汇总2\\241632王杨宇飞.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\241730_何晨雨\\241730何晨雨.txt' 到 'C:\\python作业\\成绩文件汇总2\\241730何晨雨.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\243902_郑昱栋\\243902郑昱栋.txt' 到 'C:\\python作业\\成绩文件汇总2\\243902郑昱栋.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\243905_赵玮伊\\赵玮伊.txt' 到 'C:\\python作业\\成绩文件汇总2\\赵玮伊.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\243906_沈冰悦\\243906沈冰悦.txt' 到 'C:\\python作业\\成绩文件汇总2\\243906沈冰悦.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\243907_高心阳\\243907高心阳.txt' 到 'C:\\python作业\\成绩文件汇总2\\243907高心阳.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\243909_唐岩\\243909唐岩.txt' 到 'C:\\python作业\\成绩文件汇总2\\243909唐岩.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\243911_张延兴\\243911张延兴.txt' 到 'C:\\python作业\\成绩文件汇总2\\243911张延兴.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\243912_葛李彤\\243912葛李彤.txt' 到 'C:\\python作业\\成绩文件汇总2\\243912葛李彤.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\243913_付奕雅\\243913付奕雅.txt' 到 'C:\\python作业\\成绩文件汇总2\\243913付奕雅.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\243914_许克\\243914许克.txt' 到 'C:\\python作业\\成绩文件汇总2\\243914许克.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\244501_贺立上\\244501贺立上.txt' 到 'C:\\python作业\\成绩文件汇总2\\244501贺立上.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\244503_宋瑞宇\\244503宋瑞宇.txt' 到 'C:\\python作业\\成绩文件汇总2\\244503宋瑞宇.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\244695_陈乐轩\\244695陈乐轩.txt' 到 'C:\\python作业\\成绩文件汇总2\\244695陈乐轩.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\244696_陈淑婷\\244696陈淑婷.txt' 到 'C:\\python作业\\成绩文件汇总2\\244696陈淑婷.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\244835_杨晨\\244835 杨晨.txt' 到 'C:\\python作业\\成绩文件汇总2\\244835 杨晨.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\245049_刘怡楠\\245049刘怡楠.txt' 到 'C:\\python作业\\成绩文件汇总2\\245049刘怡楠.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\245053_司竹颜\\245053司竹颜.txt' 到 'C:\\python作业\\成绩文件汇总2\\245053司竹颜.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\245056_郑浩\\245056 郑浩.txt' 到 'C:\\python作业\\成绩文件汇总2\\245056 郑浩.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\张聪_张聪\\240338张聪.txt' 到 'C:\\python作业\\成绩文件汇总2\\240338张聪.txt'\n",
      "已复制文件 'C:\\python作业\\铁通2401\\杨涵馥_杨涵馥\\241444杨涵馥.txt' 到 'C:\\python作业\\成绩文件汇总2\\241444杨涵馥.txt'\n",
      "所有文本文件已成功提取并存放到 '成绩文件汇总2' 文件夹中。\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "import shutil\n",
    "\n",
    "# 定义源文件夹路径和目标文件夹路径\n",
    "source_root_folder = r'C:\\python作业\\铁通2401'\n",
    "destination_folder = r'C:\\python作业\\成绩文件汇总2'\n",
    "\n",
    "# 创建目标文件夹，如果它不存在的话\n",
    "if not os.path.exists(destination_folder):\n",
    "    os.makedirs(destination_folder)\n",
    "    print(f\"已创建文件夹 '{destination_folder}'\")\n",
    "else:\n",
    "    print(f\"文件夹 '{destination_folder}' 已存在\")\n",
    "\n",
    "# 遍历源文件夹及其所有子文件夹\n",
    "for root, dirs, files in os.walk(source_root_folder):\n",
    "    for file in files:\n",
    "        # 检查文件是否为文本文件（.txt）\n",
    "        if file.endswith('.txt'):\n",
    "            source_file_path = os.path.join(root, file)\n",
    "            destination_file_path = os.path.join(destination_folder, file)\n",
    "\n",
    "            # 如果目标文件夹中已经存在同名文件，则添加编号以避免覆盖\n",
    "            counter = 1\n",
    "            while os.path.exists(destination_file_path):\n",
    "                name, ext = os.path.splitext(file)\n",
    "                destination_file_path = os.path.join(destination_folder, f\"{name}_{counter}{ext}\")\n",
    "                counter += 1\n",
    "\n",
    "            # 复制文件到目标文件夹\n",
    "            shutil.copy2(source_file_path, destination_file_path)  # 使用copy2保留元数据\n",
    "            print(f\"已复制文件 '{source_file_path}' 到 '{destination_file_path}'\")\n",
    "\n",
    "print(\"所有文本文件已成功提取并存放到 '成绩文件汇总2' 文件夹中。\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
